var SPRITES = [];

//PLAYER
loadSprite('marco');
loadSprite('desert');

var SPRITE_OBJ = 2;

function loading(){
	SPRITE_OBJ --;
	if(SPRITE_OBJ == 0)
		run();
}

function loadSprite(src){
	var sprite = new Image();
	sprite.src = 'assets/sprites/' + src + '.gif';

	SPRITES[src] = sprite;

	sprite.onload = loading;
}

function renderSprites(obj){
	var o = obj;
	var iS = 0; // Index sprite
	for(iS in o.sprites) {
		var sprite = o.sprites[iS];

		var dx = typeof o.coords.dx !== "undefined" ? o.coords.dx : 1;
		var dy = typeof o.coords.dy !== "undefined" ? o.coords.dy : 1;
		
		ctx.drawImage(SPRITES[sprite.name],
			sprite.bgx, // position x en image source
			sprite.bgy, // position y en image source
			sprite.bgw, // largeur image source
			sprite.bgh, // hauteur image source
			(o.coords.x + sprite.ox) * dx, // position X sur canvas (pos X + offset X)
			(o.coords.y + sprite.oy) * dy, // position Y sur canvas (pos Y + offset Y)
			sprite.bgw, // largeur sur canvas de destination
			sprite.bgh  // hauteur sur canvas de destination
		);
	}
	
}

function animateSprites(obj){
	var o = obj;

	for(iS in o.sprites) {
		var sprite = o.sprites[iS];
		//Augmente le nombre de stick
		sprite.k++;

		if( sprite.k > sprite.km ) { // Attend le nombre max de sticks pour faire défiler le sprite!
			//Remet le compteur de stick à 0
			sprite.k = 0;
			sprite.bgx += sprite.bgw; // Fait défiler le sprite
			if (sprite.bgx >= sprite.bgxm) { // Si le défilement atteint la limite fixée pour le sprite
				//Remet à zéro le défilement du sprite
				sprite.bgx = sprite.bgxsrc;
			}
		}
	}
}